//package com.ztools.http;
//
//
//import android.text.TextUtils;
//
//import com.wealthfund.data.okretrofit.entity.BaseEntity;
//import com.wealthfund.data.okretrofit.exception.ApiException;
//import com.wealthfund.data.okretrofit.exception.ExceptionEngine;
//
//import io.reactivex.Observer;
//import io.reactivex.disposables.Disposable;
//import utilscode.utils.LogUtils;
//
//
///**
// * Created by zhangxuehui on 2018/3/7.
// */
//public class BaseObserver<T> implements Observer<String >, HttpResponseListener<T> {
//
//
//    private String mTag;//唯一标识
//    private String mErrMsg;//错误信息
//    private Disposable mDisposable;
//    private boolean isRequest = false;
//
//    public BaseObserver(String mTag) {
//        this.mTag = mTag;
//    }
//
//    @Override
//    public void onSubscribe(Disposable disposable) {
//        LogUtils.e("开始网路请求");
//        this.mDisposable = disposable;
//        addObserver();
//        isRequest = true;
//    }
//
//    @Override
//    public void onNext(BaseEntity<T> tBaseEntity) {
//        isRequest = true;
//        onSuccess(tBaseEntity.getData());
//    }
//
//
//    @Override
//    public void onError(Throwable throwable) {
//        isRequest = false;
//        removeObserver();
//        ApiException e;
//        if (throwable instanceof ApiException) {
//            e = (ApiException) throwable;
//        } else {
//            e = new ApiException(throwable, ExceptionEngine.UN_KNOWN_ERROR);
//        }
//        mErrMsg = e.getMsg();
//        if (e.getCode() == ExceptionEngine.UN_KNOWN_ERROR) {
//            LogUtils.e(mTag + "请求onFail：\n" + "Code:" + e.getCode() + "ErrMsg：" + mErrMsg);
//            return;
//        }
//        onFail(e);
//    }
//
//    @Override
//    public void onComplete() {
//        isRequest = false;
//        if (mDisposable != null && !mDisposable.isDisposed()) {
//            mDisposable.dispose();
//        }
//    }
//
//
//    /**
//     * 移除observer
//     */
//    private void removeObserver() {
//        if (!TextUtils.isEmpty(mTag)) {
//            ObserverManagerImpl.getInstance().remove(mTag);
//        }
//    }
//
//    /**
//     * 添加observer
//     */
//    private void addObserver() {
//        if (!TextUtils.isEmpty(mTag)) {
//            ObserverManagerImpl.getInstance().add(mTag, mDisposable);
//        }
//    }
//
//    /**
//     * 添加observer
//     */
//    public void cancelObserver() {
//        if (!TextUtils.isEmpty(mTag)) {
//            ObserverManagerImpl.getInstance().cancel(mTag);
//        }
//    }
//
//    /**
//     * 添加observer
//     */
//    public boolean isRequest() {
//        return isRequest;
//    }
//
//    @Override
//    public void onFail(ApiException e) {
//        if (e.getCode() == 9999) {
////            ToastUtils.showShort("易峰接口异常：" + e.getCode());
//            LogUtils.e("易峰接口异常：" + e.getCode());
//        }
//        LogUtils.e(mTag + "请求onFail：\n" + "Code:" + e.getCode() + "ErrMsg：" + mErrMsg);
//    }
//
//    @Override
//    public void onSuccess(T t) {
//        onComplete();
//    }
//
//
//    /**
//     * 网络请求tag
//     *
//     * @return
//     */
//    protected String getTag() {
//        return mTag;
//    }
//}
